import esbuild from "esbuild";
import process from "process";
import builtins from "builtin-modules";
import copyPluginPkg from "@sprout2000/esbuild-copy-plugin";


const {copyPlugin} = copyPluginPkg


const banner =
    `/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
`;

const prod = (process.argv[2] === "production");


const result = await esbuild.build({
    bundle: true,
    entryPoints: ["src/main.ts"],
    outdir: "dist",
    jsx: "automatic",
    format: "cjs",
    target: "es2018",
    external: [
        "obsidian",
        "electron",
        "@codemirror/autocomplete",
        "@codemirror/collab",
        "@codemirror/commands",
        "@codemirror/language",
        "@codemirror/lint",
        "@codemirror/search",
        "@codemirror/state",
        "@codemirror/view",
        "@lezer/common",
        "@lezer/highlight",
        "@lezer/lr",
        ...builtins],
    banner: {
        js: banner,
    },
    logLevel: "info",
    minify: prod,
    sourcemap: prod ? false : "inline",
    treeShaking: true,
    plugins: [
        copyPlugin({
            src: "src/css/styles.css",
            dest: "dist/styles.css"
        }),
        copyPlugin({
            src: "manifest.json",
            dest: "dist/manifest.json"
        }),
    ]
});

console.log(result)


